﻿using System;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x020002B7 RID: 695
	public class TDeclareSqlNode : TParseTreeNode
	{
		// Token: 0x06001789 RID: 6025 RVA: 0x003284B4 File Offset: 0x003266B4
		public void setDeclareType(EDeclareType dt)
		{
			this.declareType = dt;
		}

		// Token: 0x170004E5 RID: 1253
		// (get) Token: 0x0600178A RID: 6026 RVA: 0x003284BD File Offset: 0x003266BD
		// (set) Token: 0x0600178B RID: 6027 RVA: 0x003284C5 File Offset: 0x003266C5
		public virtual EDeclareType DeclareType
		{
			get
			{
				return this.declareType;
			}
			set
			{
				this.declareType = value;
			}
		}

		// Token: 0x170004E6 RID: 1254
		// (get) Token: 0x0600178C RID: 6028 RVA: 0x003284CE File Offset: 0x003266CE
		public virtual TObjectName ConditionName
		{
			get
			{
				return this.conditionName;
			}
		}

		// Token: 0x170004E7 RID: 1255
		// (get) Token: 0x0600178D RID: 6029 RVA: 0x003284D6 File Offset: 0x003266D6
		public virtual TObjectName CursorName
		{
			get
			{
				return this.cursorName;
			}
		}

		// Token: 0x170004E8 RID: 1256
		// (get) Token: 0x0600178E RID: 6030 RVA: 0x003284DE File Offset: 0x003266DE
		public virtual TDeclareVariableList Variables
		{
			get
			{
				return this.variables;
			}
		}

		// Token: 0x0600178F RID: 6031 RVA: 0x003284E8 File Offset: 0x003266E8
		public override void init(object arg1, object arg2)
		{
			if (arg2 is TDeclareVariableList)
			{
				this.variables = (TDeclareVariableList)arg2;
				this.declareType = EDeclareType.variable;
				return;
			}
			if (arg2 is TSelectSqlNode)
			{
				this.cursorName = (TObjectName)arg1;
				this.selectSqlNode = (TSelectSqlNode)arg2;
				this.declareType = EDeclareType.cursor;
				return;
			}
			if (arg2 is TStatementSqlNode)
			{
				this.stmtSqlNode = (TStatementSqlNode)arg2;
				return;
			}
			if (arg1 != null)
			{
				this.conditionName = (TObjectName)arg1;
			}
		}

		// Token: 0x170004E9 RID: 1257
		// (get) Token: 0x06001790 RID: 6032 RVA: 0x0032855E File Offset: 0x0032675E
		public virtual TSelectSqlNode SelectSqlNode
		{
			get
			{
				return this.selectSqlNode;
			}
		}

		// Token: 0x170004EA RID: 1258
		// (get) Token: 0x06001791 RID: 6033 RVA: 0x00328566 File Offset: 0x00326766
		public virtual TStatementSqlNode StmtSqlNode
		{
			get
			{
				return this.stmtSqlNode;
			}
		}

		// Token: 0x04001813 RID: 6163
		private TSelectSqlNode selectSqlNode;

		// Token: 0x04001814 RID: 6164
		private TDeclareVariableList variables;

		// Token: 0x04001815 RID: 6165
		private TObjectName cursorName;

		// Token: 0x04001816 RID: 6166
		private EDeclareType declareType = EDeclareType.variable;

		// Token: 0x04001817 RID: 6167
		private TObjectName conditionName;

		// Token: 0x04001818 RID: 6168
		private TStatementSqlNode stmtSqlNode;
	}
}
